<?php
session_start(); 
session_register('SafeCode'); 
$type = 'gif'; 
$width= 40; 
$height= 16; 
header("Content-type: image/".$type); 
$randval = randStr(4,"NUMBER"); 
$_SESSION['SafeCode'] = $randval; 
if($type!='gif' && function_exists('imagecreatetruecolor')){ 
$im = @imagecreatetruecolor($width,$height); 
}else{ 
$im = @imagecreate($width,$height); 
} 
$r = Array(225,211,255,223); 
$g = Array(225,236,237,215); 
$b = Array(225,236,166,125); 

$key = rand(0,3); 

$backColor = ImageColorAllocate($im,$r[$key],$g[$key],$b[$key]);//背景色（随机） 
$borderColor = ImageColorAllocate($im, 0, 0, 0);//边框色 
$pointColor = ImageColorAllocate($im, 255, 170, 255);//点颜色 

@imagefilledrectangle($im, 0, 0, $width - 1, $height - 1, $backColor);//背景位置 
@imagerectangle($im, 0, 0, $width-1, $height-1, $borderColor); //边框位置 
$stringColor = ImageColorAllocate($im, 255,51,153); 

for($i=0;$i<=100;$i++){ 
$pointX = rand(2,$width-2); 
$pointY = rand(2,$height-2); 
@imagesetpixel($im, $pointX, $pointY, $pointColor); 
} 

@imagestring($im, 3, 5, 1, $randval, $stringColor); 
$ImageFun='Image'.$type; 
$ImageFun($im); 
@ImageDestroy($im); 

//产生随机字符串函数
function randStr($len=6,$format='ALL') { 
switch($format) { 
case 'ALL': 
$chars='ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789'; break; 
case 'CHAR': 
$chars='ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz'; break; 
case 'NUMBER': 
$chars='0123456789'; break; 
default : 
$chars='ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789'; 
break; 
} 
$string=""; 
while(strlen($string)<$len) 
$string.=substr($chars,(mt_rand(0,strlen($chars))),1); 
return $string; 
} 

?>